#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <limits.h>


int myAtoi(char* s) {
    bool positive=true;
    long num=0;
    while( *s==' ' )
        s++;
    if( *s=='-' ){
        positive=false;
        s++;
    }
    else if( *s=='+' )
        s++;
    while( *s!='\0' && *s=='0' ) s++;
    while( *s!='\0' && *s>='0' && *s<='9' ){
        num=num*10+(*s-'0');
        //printf("%ld\n",num);
        if( positive && num >= INT_MAX ){
            num=INT_MAX;
            break;
        }
        if( !positive && -num <= INT_MIN ){
            num=INT_MIN;
            num=-num;
            break;
        }
        s++;
    }
    return positive?num:-num;
}

int main(){
    printf("%d\n",myAtoi("-+12"));
    return 0;
}
